package net.realsee.domain.wcs.work.bo;

import lombok.Data;
import lombok.EqualsAndHashCode;
import net.realsee.framework.core.domain.BaseEntity;
import net.realsee.framework.core.validate.AddGroup;
import net.realsee.framework.core.validate.EditGroup;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 系统告警信息业务对象 wcs_warn
 *
 * @author realsee
 * @date 2023-08-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class WcsWarnBo extends BaseEntity {

    /**
     * 主键,自增ID
     */
    @NotNull(message = "主键,自增ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 告警主体(可用于记录具体的设备，点位等)
     */
    private String warnSubject;

    /**
     * 告警类别，可用于区分系统、线体、设备等
     */
    private String warnClass;

    /**
     * 告警类型(warn_type.warn_type)
     */
    private String warnType;

    /**
     * 告警状态(warn_status.warn_status)
     */
    private String warnStatus;

    /**
     * 告警开始时间
     */
    private Date startedOn;

    /**
     * 告警优先级1～10， 0-不考虑, 1:最高;  10:最低
     */
    private Long priority;

    /**
     * 告警信息
     */
    @NotBlank(message = "告警信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String message;

    /**
     * 告警到期日期
     */
    private Date expirationDate;

    /**
     * 持续时间
     */
    private Long duration;

    /**
     * 父告警/源告警ID
     */
    private Long parWarnId;

    /**
     * 位置码
     */
    private String positionCode;

    /**
     * 关联的单据号/任务号
     */
    private String orderNo;

    /**
     * 关联的单据行号/任务行号
     */
    private String orderLineNo;

}
